Input device

ABSTRACT

In some embodiments, an input device includes a housing having a top surface, a touch sensor disposed on the top surface of the housing, and a processor disposed in the housing. The touch sensor can be configured to detect a contact by a hand on the top surface of the housing and generate touch data corresponding to the detected contact by the hand. The processor can be configured to control operation of the touch sensor and receive the touch data, determine an orientation of the hand with respect to the housing based on the touch data, and calibrate a detected movement of the input device based on the determined orientation of the hand with respect to the housing. An image sensor and/or one or more IMUs can be used to detect 2D and/or 3D movement of the input device.

BACKGROUND

Input devices are commonplace in contemporary computing systems and aretypically used to convert human-induced analog inputs (e.g., touches,clicks, motions, touch gestures, button presses, scroll wheel rotations,etc.) made in conjunction with an input device into digital signals forcomputer processing. An input device can include any device that canprovide data and control signals to a computing system. Somenon-limiting examples of input devices include computer mice, keyboards,virtual reality (VR) and/or augmented reality (AR) controllers andhead-mounted displays, touch pads, remote controls, gaming controllers,joysticks, trackballs, and the like. Some non-limiting examples ofcomputing systems include desktops, laptops, tablet computers, smartphones, personal digital assistants, wearable devices (e.g., smartwatches, glasses), VR and/or AR systems, and the like.

VR may be referred to as immersive multimedia or computer-simulatedreality. It is frequently associated with a variety of applications,which may comprise immersive, highly visual, computer-simulatedenvironments. These environments typically simulate a physical presenceof a user in places in the real world or imagined worlds. The computersimulation of these environments is commonly achieved by visual imagesand auditory signals.

Visual images are commonly presented by means of a video display thatforms part of a head mounted display (HMD) and may encompass all or partof a user's field of view. The HMD may be arranged as a visor, helmet orother suitable configuration. Some examples of HMDs that are presentlyavailable are the Oculus Rift, HTC Vive, Samsung Gear VR, and MicrosoftHoloLens.

Input devices such as computer mice are conventionally used to control acursor on a display by tracking a movement of the computer mouserelative to an underlying surface. Computer mice typically include anumber of interface elements including buttons, scroll wheels, touchsensitive regions, and the like. While computer mice can be particularlyeffective for tracking movement along a two-dimensional (“2D”) surface,they are not conventionally well-suited for in-air movements,particularly three-dimensional (“3D”) environments in VR applications.Even some contemporary computer mice that incorporate inertialmeasurement units (IMUs) tend to be bulky, cumbersome, awkward, and canhave a limited scope of use in VR applications.

Some presenter devices (e.g., “clickers”) may be well-suited for limitedin-air use (e.g., advancing slides in a presentation), but notnecessarily in fully immersive 3D environments. VR controllers, on theother hand, can be typically well-suited for VR environments, but highlyinefficient or ineffective for generating input commands beyond simplecursor movements that are typically associated with conventionalcomputer mice (e.g., office applications). While some cross-applicationinput devices exist, better implementations are needed.

BRIEF SUMMARY

According to certain embodiments, an input device can include a housinghaving a top surface; a touch sensor coupled to the top surface of thehousing, the touch sensor configured to: detect a contact by at least aportion of a hand on the top surface of the housing; and generate touchdata corresponding to the detected contact by the at least a portion ofa hand; and one or more processors disposed in the housing, the one ormore processors configured to: receive the touch data from the touchsensor; determine an orientation of the hand with respect to the housingbased on the touch data; and calibrate a movement of the input devicebased on the determined orientation of the hand with respect to thehousing. The input device can further include an image sensor coupled tothe housing and the processor, the image sensor configured to image asurface, where the one or more processors are configured to determine,based on the image sensor imaging the surface, two-dimensional (2D)movement of the input device with respect to the surface; and where the2D movement is calibrated based on the determined orientation of thehand with respect to the housing.

Some embodiments may include an inertial measurement unit (IMU) disposedto the housing and the one or more processors, the IMU configured todetect a change in a property indicative of a three-dimensional (3D)movement of the input device; and generate 3D movement datacorresponding to the detected change in the property, where the movementof the input device that is calibrated is based, at least in part, onthe 3D movement data. The one or more processors may determine alocation of at least one finger of the hand on the housing based on thetouch data, and the one or more processors can calibrate the movement ofthe input device based on the location of the at least one finger withrespect to the housing. In some cases, the one or more processors maydetermine a location of a palm of the hand on the housing and at leastone finger of the hand on the housing based on the touch data, and theone or more processors can calibrate the movement of the input devicebased on the location of the palm and the at least one finger withrespect to the housing.

In certain embodiments, at least a portion of the top surface of thehousing is transparent to IR light, and wherein the input device furthercomprises: one or more infra-red (IR) emitters controlled by the one ormore processors and disposed within the housing, the one or more IRemitters configured to emit IR light out through the IR transparentportion of the top surface of the housing; and one or more IR detectorscoupled to the one or more processors and disposed within the housing,the one or more IR detectors configured to detect IR light emitted by IRemitters and reflected off of a hand on the surface of the housing, andwherein the IR emitters are disposed in the housing, where the one ormore processors are configured to determine the orientation of the handwith respect to the housing based on the detected IR light. In someaspects, the input device can further include a haptic element coupledto the housing and controlled by the one or more processors, and aninertial measurement unit (IMU) disposed in the housing and coupled tothe one or more processors, the IMU configured to: detect a rotation ora tilting of the input device; and generate tilt data corresponding tothe detected tilting of the input device or generate rotation datacorresponding to the detected rotation of the input device, where theone or more processors are configured to cause the haptic element togenerate a stimulus in response to receiving the tilt data or therotation data, and where an intensity of the stimulus corresponds to anamount of detected tilting or rotation of the input device.

In further embodiments, a method can include receiving, by one or moreprocessors, touch data from a touch sensor disposed on a housing of aninput device, the touch data corresponding to a detected presence of ahand on a surface of the housing; determining, by the one or moreprocessors, an orientation of the hand with respect to the housing basedon the touch data; calibrating, by the one or more processors, amovement detection of the input device based on the determinedorientation of the hand with respect to the housing; receiving, by theone or more processors, movement data from a movement sensor disposed inthe housing of the input device, the movement data corresponding to adetected movement of the input device; and determining, by the one ormore processors, a movement of the input device based on the movementdata, where the determined movement is adjusted as defined by thecalibrated movement detection. The movement sensor may be an opticalsensor configured to detect a 2D movement of the input device relativeto an underlying surface and/or an IMU configured to detect 3D movementof the input device.

In some embodiments, determining the orientation of the hand withrespect to the housing can further include determining a location of amiddle finger of the hand, and where calibrating the movement detectionof the input device is further based on the location of the middlefinger with respect to the housing. In some aspects, determining theorientation of the hand with respect to the housing can further includedetermining a location of a palm of the hand, where calibrating thedetermine movement of the input device can be further based on thelocation of the palm of the hand with respect to the housing.

In certain embodiments, the method can include receiving, by the one ormore processors, IR data from one or more IR detectors disposed in thehousing and controlled by the one or more processors, where the one ormore IR detectors are configured to detect IR light emitted by IRemitters and reflected off of a hand on the surface of the housing, andwhere the IR emitters are disposed in the housing; detecting, by the oneor more processors, a location of the hand on the surface of the housingbased on the IR data, where determining the orientation of the hand withrespect to the housing is further based on detected position of the handbased on the IR data. In some implementations, the movement sensor mayinclude an IMU disposed in the housing and controlled by the one or moreprocessors, the IMU being configured to detect a 3D movement of theinput device, where the method further includes: detecting, by the oneor more processors, a tilt condition based on the movement data, thetilt condition corresponding to the input device tilting beyond athreshold angle relative to a horizontal plane; causing a haptic devicecoupled to the input device to generate a stimulus in response to theprocessor detecting the tilt condition; and modifying an intensity ofthe stimulus based on an amount of detected tilting of the input device.

In some embodiments, a system includes one or more processors; and oneor more non-transitory computer-readable storage mediums containinginstructions to cause the one or more processors to perform operationsincluding: receiving touch data from a touch sensor disposed on ahousing of an input device, the touch data corresponding to a detectedpresence of a hand on a surface of the housing; determining anorientation of the hand with respect to the housing based on the touchdata; calibrating a movement detection of the input device based on thedetermined orientation of the hand with respect to the housing;receiving movement data from a movement sensor disposed in the housingof the input device, the movement data corresponding to a detectedmovement of the input device; and determining a movement of the inputdevice based on the movement data, wherein the determined movement isadjusted as defined by the calibrated movement detection. In someaspects, the movement sensor can be an optical sensor configured todetect a 2D movement of the input device relative to an underlyingsurface and/or an IMU configured to detect 3D movement of the inputdevice.

In some embodiments, determining the orientation of the hand withrespect to the housing can further include determining the location of amiddle finger, and calibrating the determine movement of the inputdevice may be further based on the location of the middle finger withrespect to the housing. In some cases, determining the orientation ofthe hand with respect to the housing further includes determining thelocation of a palm of the hand, and calibrating the determine movementof the input device can be further based on the location of the palm ofthe hand with respect to the housing.

In certain embodiments, the one or more non-transitory computer-readablestorage mediums can further contain instructions to cause the one ormore processors to perform operations including: receiving IR data fromone or more IR detectors disposed in the housing, wherein the one ormore IR detectors are configured to receive reflected IR light emittedby IR emitters and reflected off of a hand on the surface of thehousing, and wherein the IR emitters are disposed in the housing; anddetecting a position of the hand on the surface of the housing based onthe IR data, where the determining the orientation of the hand withrespect to the housing is further based on detected position of the handbased on the IR data.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description is set forth with reference to the accompanyingfigures.

FIG. 1 shows a simplified diagram of a computer system including aninput device operating on a surface, according to certain embodiments.

FIG. 2 shows an input device used as an in-air presenter device,according to certain embodiments.

FIG. 3 shows an input device used in a VR environment, according tocertain embodiments.

FIG. 4 shows a simplified block diagram of a system to operate an inputdevice, according to certain embodiments.

FIG. 5A shows an exploded view of an input device, according to certainembodiments.

FIG. 5B shows a bottom plan view of a bottom portion of a housing for aninput device, according to certain embodiments.

FIG. 6A shows aspects of a movement calibration process for an inputdevice using touch detection, according to certain embodiments.

FIG. 6B shows aspects of a movement calibration process for an inputdevice using touch detection, according to certain embodiments.

FIG. 6C shows aspects of a movement calibration process for an inputdevice using touch detection, according to certain embodiments.

FIG. 7 shows aspects of a movement calibration process for an inputdevice using optical detection, according to certain embodiments.

FIG. 8 shows aspects of a depressible housing, according to certainembodiments.

FIG. 9 is a simplified flow chart showing aspects of a method formovement calibration, according to certain embodiments.

FIG. 10A shows a tilt function on an input device, according to certainembodiments.

FIG. 10B shows a second tilt function on an input device, according tocertain embodiments.

FIG. 10C shows a rotation function on an input device, according tocertain embodiments.

DETAILED DESCRIPTION

Embodiments of this invention are generally directed to electronicperipheral devices. More specifically, some embodiments relate to aninput device that can calibrate a detected movement based on a detectedorientation of a user's hand relative to the input device.

In the following description, for the purpose of explanation, numerousexamples and details are set forth in order to provide an understandingof embodiments of the present invention. It will be evident, however, toone skilled in the art that certain embodiments can be practiced withoutsome of these details, or with modifications or equivalents thereof.

Certain embodiments of the invention relate to an adaptable input devicethat can be useful and effective over many different modes of operationincluding 2D movement tracking along an underlying surface (e.g., likesome computer mice) and 3D movement tracking for detecting tiltingand/or rotation, “in-air” movements (e.g., like some presenter devices),and use in VR/AR environments, as further described below. Conventionalcomputer mice may be well-suited for surface use, but can be awkward,cumbersome, and limited in application for in-air uses includingpresenter and VR/AR implementations. Furthermore, a user typicallycannot physically see an input device when fully immersed in a VRenvironment and, in some cases, the user may not know if the inputdevice in being held in a “forward” orientation, or if what the userbelieves to be a forward orientation is actually skewed in anotherdirection. Thus, some aspects of the invention can auto-align to auser's hand by detecting how the input device is being interfaced (e.g.,held) by a user, determining an orientation of the hand relative to ahousing of the input device (e.g., typically based on a detectedlocation of a middle finger, palm, or combination thereof), andautomatically and seamlessly calibrating a movement of the input device(e.g., computer mouse) relative to the detected location of the user'sfinger and/or palm. This capability can enable embodiments of theinvention to receive a user's hand in any orientation (versusconventional mice that may be designed to be operated with respect toone particular orientation) and calibrate the input device's operationto the user's particular grip, making for a highly adaptive interfacethat can be well-suited for surface use, in-air use, and VR use alike.

Some implementations can utilize a symmetrical design, such as a pillshape, a saucer shape, disc shape, puck shape, spherical shape, or othersuitable form factor to allow a user to comfortably interface (e.g.,grip) the input device in multiple orientations and to facilitatecertain operations such as tilting and rotation functions. Some of themethods of detection described herein include capacitance-baseddetection schemes (see, e.g., FIG. 5A) and optical (e.g., infra-red)detection schemes (see, e.g., FIG. 6), however other methods ofdetection (e.g., resistance-based detection schemes) are possible. Someembodiments can incorporate haptic feedback that may change in intensitybased on a certain amount of tilt of the input device on a surface, arotation of the input device, or other suitable function (e.g., 2D or 3Dmovement speed) that may benefit from haptic integration. It should benoted that the aforementioned examples are non-limiting and broadlyillustrate only some of the inventive concepts that are enabled anddescribed in the present disclosure.

In some particular embodiments, an input device can include a housinghaving a top surface, a touch sensor configured to detect a userinterfacing with a surface of the housing, and a processor disposed inthe housing. The touch sensor can be configured to detect a contact by ahand on the top surface of the housing and generate touch datacorresponding to the detected contact by the hand. The processor can beconfigured to control the operation of the touch sensor and receive thetouch data, determine an orientation of the hand with respect to thehousing based on the touch data, and calibrate a detected movement ofthe input device based on the determined orientation of the hand withrespect to the housing. In some aspects, the determined orientation canbe based on a detected location of the user's middle finger, palm, orcombination thereof. A top surface of the housing can be infra-red (IR)transparent such that IR emitter(s) and detectors placed inside thehousing can be used to alternatively or additionally detect theorientation of the user's hand via IR optical detection.

Some embodiments can detect 2D movement along an underlying surface, 3Dmovement including tilting and/or rotation of an input device relativeto a surface, and/or 3 “in-air” usage. An inertial measurement unit(IMU) can be configured to detect a rotation or a tilting of the inputdevice, generate tilt data corresponding to the detected tilting of theinput device, and generate rotation data corresponding to the detectedrotation of the input device. The processor may cause a haptic device togenerate a haptic feedback in response to receiving the tilt data orrotation data, and an intensity of the haptic feedback may correspond toan amount of detected tilting or rotation of the input device. These andother embodiments are further described in the description the follows.

FIG. 1 shows a simplified diagram of a computer system 100 including aninput device 130 operating on a surface, according to certainembodiments. Computer system 100 can further include computer 110,display 120, and keyboard 140. In some embodiments, input device 130 canbe a computer mouse, a remote control device, a game controller (e.g.,game pad, joystick, etc.), a smart phone, or other suitable device thatcan be used to convert analog inputs into digital signals for computerprocessing. For computer system 100, input device 130 can be configuredto control various aspects of computer 110 and display 120 (e.g., cursorcontrol, interfacing with an operating system running on computer 110,etc.), as would be appreciated by one of ordinary skill in the art withthe benefit of this disclosure.

Computer 110 can be any suitable computing device including, but notlimited to, a desktop computer, a laptop computer, a tablet computer, asmart phone, a PDA, a wearable device (e.g., smart watches, smartglasses), VR/AR systems, or the like. In some embodiments, input device130 can be configured to provide control signals for movement tracking(e.g., 2D movement along a planar surface, 3D “in-air” movements, etc.),touch and/or gesture detection (e.g., on a touch sensitive surface),lift detection, orientation detection (e.g., in 3 degrees-of-freedom(DOF) systems, 6 DOF systems, etc.), power management capabilities,input detection (e.g., buttons, scroll wheels, etc.), output functions(e.g., LED control, haptic feedback, etc.), and a myriad of otherfeatures. Computer 110 may include a machine readable medium (not shown)that is configured to store computer code, such as input device driversoftware, where the computer code is executable by a processor (see,e.g., processor 410 of FIG. 4) of computer 110 to control aspects ofcomputer 110 via input device 130, keyboard 140, or the like. Thevarious embodiments described herein generally refer to input device 130as a computer mouse or similar input device, however it should beunderstood that input device 130 can be any suitable input/output (I/O)device (e.g., user interface device, control device, input unit, or thelike) that may be adapted to utilize the novel embodiments described,enabled, and/or contemplated herein.

FIG. 2 shows input device 130 used as an in-air presenter device,according to certain embodiments. Input device 130 can be configured tocontrol various aspects of computer 210 and display 220. In scene 200,input device 130 can be initially used as a 2D mouse operating on asurface, as shown in FIG. 1. User 240 is shown picking up input device130 and using it as a presenter device for “in-air” operation. In someembodiments, input device 130 can maintain certain functions in responseto switching between modes of operation (e.g., surface use and in-airuse). For instance, a touch sensitive region (as shown in FIG. 5A) maybe assigned to initiate left and/or right button press functions. Inputdevice 130 may maintain the left/right button assignment for the touchsensitive region when switching between surface and in-air use.Alternatively or additionally, input device 130 may change certainfunctions in response to switching between modes of operation. Forexample, a button on input device 130 may be configured to control adots-per-inch (DPI) setting when operating on a surface, and that samebutton may be configured to initiate a “next slide” command whenoperating in an in-air mode (e.g., presenter mode, VR mode, etc.). Inanother example, an on-board IMU (see, e.g., FIG. 4) may detect wheninput device 130 is tilted a certain threshold angle (e.g., 45 degrees)from a horizontal plane (i.e., a “tilt” condition—further discussedbelow with respect to FIGS. 10A-10B). For instance, input device 130 canassociate a scroll function with the tilt condition when input device130 is operating on a surface, and associate a volume control functionwith the tilt condition when input device 130 is operating in an in-airmode. One of ordinary skill in the art would understand the manyvariations, modifications, and alternative embodiments thereof.Switching between modes of operation (e.g., surface use, in-air use, VRuse) and/or recalibrating a movement (e.g., due to a repositioning of ahand) of input device 130 can be performed automatically (e.g., by inputdevice 130 determining that input device 130 has moved a thresholddistance from a surface and/or that movement detected, via an IMU,indicates that input device 130 is being operated “in air”, by detectinga user's hand upon input device 130) and can be experienced by a user asa seamless and immediate transition. For example, a mode or calibrationchange can occur without a user specifically commanding the mode orcalibration change. Instead, input device 130 may automatically changemodes and/or calibration upon determining that certain criteria are met.

FIG. 3 shows input device 130 used in a VR environment, according tocertain embodiments. In setting 300, user 340 is wearing HMD 320 andoperating input device 130 in an in-air mode of operation. Display 350depicts a virtual reality scene 360 generated by HMD 320 includingvirtual table 370 and virtual vase 380. As indicated above, certaininputs (e.g., touch detection, tilt detection, rotation detection, etc.)can perform different functions depending on the mode of operation thatinput device 130 is operating. For example, tilt detection may perform afirst function when input device 130 is operating on a surface and asecond function when operating in an in-air mode of operation. In someembodiments, tilt detection may be disabled when operating input device130 in a VR environment, such that tilting or fully rotating may nottrigger a tilt-related function. For example, referring to FIG. 3, user340 selects vase 380 using input device 130 and manipulates vase 380 in3D space within VR scene 360. User 340 rotates input device 130, therebycausing vase 380 to rotate in a similar fashion. Any number of functionsand control schemes can be assigned to input device 130 and any changein the input/function relationship may be applied in any of the modes ofoperation, as would be understood by one of ordinary skill in the artwith the benefit of this disclosure.

Exemplary System for Operating Dual-Mode Input Device

FIG. 4 shows a simplified block diagram of a system 400 to operate inputdevice 130, according to certain embodiments. System 400 may includeprocessor(s) 410, operational logic block 420, movement tracking block430, communications block 440, input detection block 450, and powermanagement block 460. Each of system blocks 420-450 can be in electricalcommunication with processor 410. System 400 may further includeadditional systems that are not shown or described to preventobfuscation of the novel features described herein.

In certain embodiments, processor(s) 410 may include one or moremicroprocessors (μPs) and can be configured to control the operation ofsystem 400. Alternatively or additionally, processor 410 may include oneor more microcontrollers (MCUs), digital signal processors (DSPs),application specific integrated circuits (ASICs), programmable logicdevices (PLDs), or the like, with supporting hardware, firmware (e.g.,memory, programmable I/Os, etc.), and/or software, as would beappreciated by one of ordinary skill in the art. Alternatively, MCUs,μCs, DSPs, ASICs, programmable logic devices, and the like, may beconfigured in other system blocks of system 400. For example,communications block 450 may include a local processor to controlcommunication with computer 110 (e.g., via Bluetooth, Bluetooth LE, RF,IR, hardwire, ZigBee, Z-Wave, Logitech Unifying, or other communicationprotocol). In some embodiments, multiple processors may enable increasedperformance characteristics in system 400 (e.g., speed and bandwidth),however multiple processors are not required, nor necessarily germane tothe novelty of the embodiments described herein. Processor(s) 410 can bedisposed in input device 130, external to input device 130 (e.g., inhost computing device 110 communicatively coupled to input device 130),or a combination thereof (e.g., processing performed by processors bothinternal and external to input device 130.

In some embodiments, operational logic block 420 can be used to controlthe various modes of operation for input device 130, to interpretvarious inputs received (e.g., by input detection block 450), and toanalyze touch detection data and/or optical IR data to determine anorientation of a user's hand with respect to the housing of the inputdevice. Input device 130 may include a standard mode of operation, anin-air mode of operation, and a VR mode of operation. The standard modeof operation can include tracking a movement of input device 130 alongan underlying 2D surface, as shown in FIG. 1. The in-air mode ofoperation can include tracking a movement of input device 130 in 3Dspace, such as when used as a presenter device, as shown in FIG. 2. TheVR mode of operation can include tracking a movement of input device 130in a 3D virtual reality space, as shown in FIG. 3. It should be notedthat references to the use of input device 130 in VR can be interpretedto also include use in augmented reality and mixed reality environments.

In certain embodiments, operational logic block 420 can interpret thedifferent types inputs received by input device 130 based on the mode ofoperation. For instance, a detected button press may initiate a “leftbutton click” in the standard mode of operation, a “next slide” in thein-air mode of operation, and an “object selection” or “grab” functionin the VR mode of operation. In another example, a rotation of inputdevice 130 may initiate an increase or decrease in a particularparameter (e.g., a volume, a position in a document, a zoom function) inboth the standard and in-air modes of operation, but may correspond to arotation of an virtual object in a virtual reality environment in the VRmode of operation.

In some aspects, operational logic block 420 can determine when to applya haptic feedback (e.g., a mechanical vibration) to the input device.For example, operating logic block 420 may determine that a tiltcondition or a rotation is occurring (e.g., based on data received frominput detection block 450) in the standard mode of operation andinitiate a haptic feedback with a corresponding intensity that can beproportional to an amount of tilt or rotation. Haptic feedback can beapplied in response to any input (e.g., an acceleration, switchingbetween modes of operation, etc.), and can be applied in any suitablemanner, as would be understood by one of ordinary skill in the art.Haptic feedback is further discussed below with respect to FIG. 5A.

Operational logic block 420 can determine an orientation of a user'shand on or near a surface of a housing of input device 130, according tocertain embodiments. For example, operational logic block 420 canreceive touch data from one or more touch sensors configured to detectcontact with a top surface of the housing (e.g., capacitive sensors)that indicates the presence of a hand. Operational logic block 420 canidentify one or more fingers (e.g., a middle finger), a palm, or otherfeatures of the hand based on the received touch data, and can determinehow the hand is oriented relative to the housing. Alternatively oradditionally, operational logic block 420 can determine an orientationof a user's hand on or near the surface (e.g., within 5 mm) of thehousing based on an optical detection system using IR LED emitter(s)(“IR emitter”) and IR detectors to detect IR light reflected off theuser's hand, as further discussed below with respect to FIG. 6.

Operational logic block 420 can recalibrate a movement of input device130 based on the detected orientation of the user's hand. For instance,a user may grasp the housing of input device 130 and move it along anunderlying surface in the standard mode of operation. Operational logicblock 420 can use features of the detected hand (e.g., the user's middlefinger, palm, or combination thereof) to set a reference point such thatmovement of input device 130 is based on the set reference point. Theuser's middle finger is an exemplary candidate for use as a referencepoint as it typically tracks the direction a user's hand is facing. Atsome time thereafter, the user may release input device 130, beginrotating the housing, and then grasp the housing again, but this time ina different location. Operational logic block 420 can then once againdetermine an orientation of the user's hand based on the touch dataand/or optical data and recalibrate the movement of input device 130based on the reference point.

In some cases, operational logic block 420 may dynamically reassigncertain features based on an orientation of a user's hand. For example,input device 130 may have certain sections of touch sensor 520configured to register touches as a “left click” and/or a “right click”based on the detected orientation of a user's hand. When the userreleases input device 130 and then grasps input device 130 in adifferent orientation, operational logic block 420 can determine theorientation of the user's hand (e.g., based on the detected location ofthe user's middle finger) and reassign new sections of touch sensor 520(e.g., on opposite sides of the detected middle finger) to register asleft/right click inputs. Thus, the designated locations of left clickand right click inputs (or any other defined function) on touch sensors520, 522 can be dynamically modified to adjust to the location andorientation of the user's hand.

It should be understood that operational logic block 420 can be anindependent entity or may be subsumed in whole or in part by processor410. In some embodiments, operational logic block 420 can work in tandemwith processor 410. In some cases, operational logic block 420 may berealized by any combination of firmware, hardware, or hardware that maybe stored/located internal or external to input device 130, or acombination thereof.

Movement tracking block 430 can be configured to track a movement ofinput device 130. Movement tracking block 430 can use optical sensors(e.g., an image sensor) such as a light-emitting diode (LEDs) and animaging array of photodiodes to detect a movement of input device 130relative to an underlying surface. Input device 130 may optionallyinclude movement tracking hardware that utilizes coherent (laser) light.In certain embodiments, an optical sensor is disposed on the bottom sideof input device 130, as shown in FIG. 5B. Movement tracking block 430can provide positional data (e.g., two-dimensional (2D) movement data)or lift detection data. For example, an optical sensor can detect when auser lifts input device 130 off of a work surface and can send that datato processor 410 and/or operational logic block 420 to an appropriatemode of operation or corresponding function. In some embodiments,movement tracking using an optical sensor is typically used in thestandard mode of operation.

In certain embodiments, an IMU including accelerometer(s) can be usedfor movement detection. Accelerometers can be electromechanical devices(e.g., micro-electromechanical systems (MEMS) devices) configured tomeasure acceleration forces (e.g., static and dynamic forces). One ormore accelerometers can be used to detect 3D positioning and/ormovement. For example, 3D tracking can utilize a three-axisaccelerometer or two two-axis accelerometers). Accelerometer data canfurther be used to determine if input device 130 has been lifted off ofa surface and can provide 3D movement data that may include thevelocity, physical orientation, and acceleration of input device 130. Insome embodiments, gyroscope(s) and/or magnetometers can be used in lieuof or in conjunction with accelerometer(s) to determine movement or anorientation of input device 130. IMUs can be used to track 3D movementfor in-air and VR applications.

In some embodiments, input device 130 may be tracked by or inconjunction with external tracking systems. For example, input device130 may include externally mounted LEDs and/or sensors to detect signalsfrom “lighthouses.” This information can be used in conjunction with theinternal orientation detect sensors (e.g., IMU or IR detection) and canbe used to track a 3D position of input device 130.

Communications block 440 can be configured to enable communicationbetween input device 130 and computer 110, or other devices and/orperipherals, according to certain embodiments. Communications block 440can be configured to provide wireless connectivity (e.g.,radio-frequency (RF), Bluetooth, BLE, infra-red (IR), ZigBee, Z-Wave,Logitech Unifying, or the like) to computer 110 or other wirelessdevices. System 400 may include a hardwired connection to computer 110(e.g., Universal Serial Bus (USB), FireWire, etc.). For example, inputdevice 130 can be configured to receive a USB cable to enablebi-directional electronic communication with computer 110 or otherexternal devices. Some embodiments may utilize different types ofcables, connection protocols, or communication standards to establishhardwired communication with other entities.

Input detection block 450 can control the detection of button activation(e.g., main buttons, side buttons, a scroll wheel button, etc.), scrollwheel and/or trackball manipulation (e.g., rotation detection), sliders,switches, touch sensors (e.g., one and/or two-dimensional touch pads),and the like. In some embodiments, input detection block 450 can detectwhen a key plate (e.g., left mouse button) or the housing is depressedwith a sufficient force (e.g., a threshold force) such that it contactsand activates a force sensor (e.g., an actuator). The force sensor maygenerate a corresponding control signal (e.g., human interface device(HID) signal) to control a computing device (e.g., computer 110)communicatively coupled to the input device (e.g., instantiating a “leftclick” on the computer). Alternatively, the functions of input detectionblock 450 can be subsumed by processor 410, or in combination therewith.

In some embodiments, input detection block 450 can detect a touch ortouch gesture on one or more touch sensitive surfaces on input device130. Input detection block 450 can include one or more touch sensitivesurfaces or touch sensors. Touch sensors generally comprise sensingelements suitable to detect a signal such as direct contact,electromagnetic or electrostatic fields, or a beam of electromagneticradiation. Touch sensors can typically detect changes in a receivedsignal, the presence of a signal, or the absence of a signal. A touchsensor may include a source for emitting the detected signal, or thesignal may be generated by a secondary source. Touch sensors may beconfigured to detect the presence of an object at a distance from areference zone or point (e.g., <5 mm), contact with a reference zone orpoint, or a combination thereof.

Input detection block 450 can include touch and/or proximity sensingcapabilities. Some examples of the types of touch/proximity sensors mayinclude, but are not limited to, resistive sensors (FSRs), (e.g.,standard air-gap 4-wire based, based on carbon loaded plastics whichhave different electrical characteristics depending on the pressure,interpolated FSR, etc.), capacitive sensors (e.g., surface capacitance,self-capacitance, mutual capacitance, etc.), optical sensors (e.g.,infrared light barriers matrix, laser based diode coupled withphoto-detectors that could measure the time of flight of the light path,etc.), acoustic sensors (e.g., piezo-buzzer coupled with microphones todetect the modification of a wave propagation pattern related to touchpoints, ultrasonic sensors, etc.), or the like. In some embodiments,input detection block 450 can detect the presence of a user's hand on atop surface of a housing of the input device by optical detection.

Input detection block 450 optical detection capabilities directed todetecting the presence and orientation of a user's hand with respect toa housing of input device 130. For instance, one or more IR LED emittersmay be disposed in the housing and configured to emit IR light outthrough an IR transparent portion of a top surface of the housing (see,e.g., FIG. 6). Light reflected off of a user's hand positioned along thetop surface of the housing can be reflected back into the housing anddetected by one or more IR detectors disposed in the housing. Based onthe detected IR light, a processor (e.g., processor(s) 410) and/orcorresponding logic (e.g., operational logic block 410) can determine anorientation of the user's hand on the housing by identifying certainfingers, the user's palm, or other features of the hand that can be usedto help determine how the user is interfacing input device 130, asfurther discussed below with respect to FIG. 6.

Power management block 460 can be configured to manage powerdistribution, recharging, power efficiency, and the like, for inputdevice 130. In some embodiments, power management block 460 can includea battery (not shown), a USB-based recharging system for the battery(not shown), power management devices (e.g., low-dropout voltageregulators—not shown), and a power grid within system 400 to providepower to each subsystem (e.g., communications block 440, etc.). Incertain embodiments, the functions provided by power management block460 may be incorporated into processor(s) 410. Alternatively, someembodiments may not include a dedicated power management block. Forexample, functional aspects of power management block 460 may besubsumed by another block (e.g., processor(s) 410) or in combinationtherewith.

Although certain systems may not expressly discussed, they should beconsidered as part of system 400, as would be understood by one ofordinary skill in the art. For example, system 400 may include a bussystem to transfer power and/or data to and from the different systemstherein. In some embodiments, system 400 may include a storage subsystem(not shown). A storage subsystem can store one or more software programsto be executed by processors (e.g., in processor(s) 410). It should beunderstood that “software” can refer to sequences of instructions that,when executed by processing unit(s) (e.g., processors, processingdevices, etc.), cause system 400 to perform certain operations ofsoftware programs. The instructions can be stored as firmware residingin read only memory (ROM) and/or applications stored in media storagethat can be read into memory for processing by processing devices.Software can be implemented as a single program or a collection ofseparate programs and can be stored in non-volatile storage and copiedin whole or in-part to volatile working memory during program execution.From a storage subsystem, processing devices can retrieve programinstructions to execute in order to execute various operations (e.g.,software-controlled spring auto-adjustment, etc.) as described herein.

It should be appreciated that system 400 is meant to be illustrative andthat many variations and modifications are possible, as would beappreciated by one of ordinary skill in the art. System 400 can includeother functions or capabilities that are not specifically described here(e.g., mobile phone, global positioning system (GPS), power management,one or more cameras, various connection ports for connecting externaldevices or accessories, etc.). While system 400 is described withreference to particular blocks (e.g., input detection block 450), it isto be understood that these blocks are defined for understanding certainembodiments of the invention and is not intended to imply thatembodiments are limited to a particular physical arrangement ofcomponent parts. The individual blocks need not correspond to physicallydistinct components. Blocks can be configured to perform variousoperations, e.g., by programming a processor or providing appropriateprocesses, and various blocks may or may not be reconfigurable dependingon how the initial configuration is obtained. Certain embodiments can berealized in a variety of apparatuses including electronic devicesimplemented using any combination of circuitry and software.Furthermore, aspects and/or portions of system 400 may be combined withor operated by other sub-systems as informed by design. For example,power management block 460 and/or movement tracking block 430 may beintegrated with processor(s) 410 instead of functioning as a separateentity.

FIG. 5A shows an exploded top perspective view of input device 130,according to certain embodiments. Input device 130 includes housing 510,which can be referred to as an enclosure or chassis. Generally, ahousing can be an enclosure to both contain various electronics thatperform the operations of the input device (e.g., system 400) and tofunction as an interface to receive a user's hand and corresponding userinteractions (e.g., touch, swipes, tilting, lifting, rotation, etc.).Housing 510 can include a top portion 512 and a bottom portion 530.Housing 510 is shown to be in the shape of a pill or flying saucer,however any suitable shape or dimensions can be used including a puckshape, spherical shape, oval shape, or any suitable shape. The shape maybe configured such that a particular orientation is not connoted basedon the shape alone. Round shapes, for instance, can exhibit a uniformfeel for the user regardless of the orientation that the user grasps theinput device. This can be useful when the user can not physically seethe input device (e.g., when immersed in a virtual reality environment),which can allow the user to immediately use the device when grasped (andsubsequently calibrated) without having to reorient their hand toaccommodate a particular default orientation as may typically be foundin conventional input devices.

In some embodiments, one or more touch sensitive sensors (“touchsensors”) 520, 522 can be disposed on top portion 512 of housing 510.Touch sensors can be arranged as continuous concentric regions, asshown. In some cases, the touch sensors may be wider or narrower,uniform or non-uniform, continuous or discontinuous (e.g., in sections),symmetrical or asymmetrical, or any combination thereof to cover some orall of top portion 512. Generally, touch sensors should have enoughcoverage on top portion 512 to accurately detect a location andorientation of a user's hand on the housing, regardless of itsorientation, with enough resolution to identify and differentiatebetween fingers (e.g., to identify a user's middle finger), a user'spalm, and/or other features of the user's hand to establish a referencepoint to facilitate the movement calibration operations discussedherein. Alternatively or additionally, optical detection using IRsensing can be used to determine an orientation of a hand on the housing(see, e.g., FIG. 6). In such cases, top portion 512 may include an IRtransparent region 515 for the IR light to pass through. Alternatively,top portion 512 may be transparent or semi-transparent to certainfrequencies/bands in the visible light spectrum for embodimentsemitting/detecting visible light to both determine an orientation of auser's hand on the housing and provide an aesthetic visual effect, whichmay include changing colors, strobing, intensity modulations, or otherlight effects.

In some embodiments, other input features can be included in top portion512 or bottom portion 530 including mechanical buttons (e.g., usingscissor-type or dome key structures), sliders, or other suitable inputfeature, as would be appreciated by one of ordinary skill in the art.

In certain embodiments, bottom portion 530 of housing 510 can beconfigured to receive top portion 512 such that they couple together bya frictional fit, by mechanical means (e.g., screws, bolts, hardware,etc.), by threading on housing 510 for a screw-on fit, or other suitablemethod. Bottom portion 530 can include processor(s) 410, one or morehaptic devices 540(1-3), one or more IR LED emitter 550, and one or moreIR light detectors 560(1-6).

Processor(s) 410 may control the operation of haptic devices 540, IR LEDemitter 550, and IR light detectors 560. Alternatively or additionally,some or all of haptic devices 540, IR LED emitter 550, and IR lightdetectors 560 may be controlled by operational logic block 420, inputdetection block 450, or any combination thereof.

Haptic devices 540 are shown to be distributed near the edges of inputdevice 130 at 120 degree intervals, although any number of hapticdevices may be used in any location or suitable distribution. Hapticdevices 540 can be linear resonant actuators, or other suitable hapticdevices that can produce a haptic output. In some implementations, inresponse to detecting a tilt condition in the standard mode ofoperation, processor(s) 410 and/or operational logic block 420 may causesome or all of haptic devices 540(1-3) to generate a haptic feedbackthat corresponds to an amount of tilt, such that a small tilt (e.g.,less than 10 degrees) may be associated with a low intensity hapticfeedback (e.g., a weak vibration, reduced haptic frequency), and a largetilt (e.g., greater than 20 degrees) may be associated with a highintensity haptic feedback (e.g., a strong vibration, increased hapticfrequency). Haptic feedback can be applied in any suitable manner andacross all modes of operation. Haptic feedback may be uniform betweenmodes of operation (e.g., tilting on a surface or in-air produces ahaptic feedback) or non-uniform (e.g., tilt detection may not be arecognized condition in a VR environment). One of ordinary skill in theart would understand the many variations, modifications, and alternativeembodiments thereof.

As indicated above, optical detection can be used to detect the presencea user's hand on an input device using one or more IR LED emitters andIR detectors. Referring to FIG. 5A, bottom portion 530 includes one ormore IR LED emitters 550 disposed in housing 510. IR emitters can bedisposed on a printed circuit board (PCB), a module, a bracket, onhousing 510, or other mounting implementation. IR emitter 550 can beconfigured to emit IR light in an omnidirectional emission pattern, afocused emission pattern, or in any suitable emission pattern to emitlight up through a transparent region of top portion 512 of housing 510.In some embodiments, the transparent region may be IR transparent orsemi-transparent, but opaque for light in the visible spectrum (400nm-700 nm or any subset thereof). IR light may be reflected off of auser's hand and back down through the IR transparent surface, which canbe detected by one or more of IR detectors 560(1)-560(6). Multiple IRemitters may be used. In some cases, more or fewer IR detectors may beused. IR detectors are typically configured near the perimeter of inputdevice 130 to detect IR light most likely to have been reflected offcertain features of the user's hand, including the user's middle finger(e.g., to identify a direction that the user's hand is pointing), theindex and ring finger (e.g., to indirectly detect a direction that theuser's hand in pointing, such as a mid-point between them), a user'spalm, or any combination of fingers and hand features that can be usedto enable operational logic 420 to deduce the orientation of the user'shand on input device 130.

FIG. 5B shows a bottom plan view of bottom portion 530 of a housing forinput device 130, according to certain embodiments. Bottom portion 530may have a rounded contour to facilitate tilting and a flat portion 570for stability when input device 130 is resting on a surface. Flatportion 570 may include optical sensor 580 for tracking 2D movement ofinput device 130 along an underlying surface. Optical sensors arefurther discussed above with respect to FIG. 4. Flat portion 570 mayfurther include one or more feet, a coating, or covering for reducingfriction as input device 130 is moved along an underlying surface. Topportion 512 and bottom portion 530 may include other features includingpower switch 590, host selection buttons (e.g., for selecting any one ofa plurality of host computers that input device 130 is communicativelycoupled to), communication selection buttons (e.g., selecting betweenBluetooth® communication protocols, IR, ZigBee, Z-Wave, LogitechUnifying, or other suitable communication protocol), output devices(e.g., speakers, LEDs), or the like.

Examples Embodiments for Performing a Movement Calibration for an InputDevice

FIGS. 6A-6C show aspects of a movement calibration process for inputdevice 130 using touch detection, according to certain embodiments. InFIG. 6A, as user's hand 610 grasps input device 130 at position A (shownin the dashed lines), system 400 (e.g., operational logic block 420)detects an orientation 620(a) of user's hand 610 with respect to housing510 of input device 130 based on certain detected features of hand 610and calibrates a movement detection for input device 130 accordingly.The detected orientation 620(a) may be based on a location of a detectedmiddle finger of hand 610 with respect to housing 510 of input device130. Alternatively or additionally, other fingers (e.g., ring finger,index finger, etc.) or features (e.g., palm) of hand 610 can be used todetermine the orientation 620(a) of hand 610 with respect to housing510, as discussed above. Any suitable method of hand detection can beused including touch-sensor-based detection (see, e.g., FIG. 5A),optical-sensor-based detection (see, e.g., FIG. 7), pressure-baseddetection (e.g., via haptic sensors disposed around housing 510,mechanical detection plates, etc.), or the like, as would be understoodby one of ordinary skill in the art with the benefit of this disclosure.Some of the examples herein describe a “grasping” of input device 130,however it should be understood that hand orientation detection can beperformed whether a user is grasping the input device, resting a hand onthe input device, holding the input device, or merely wholly orpartially contacting input device 130 with their hand. In some cases,hand orientation detection can be performed when a user is hoveringtheir hand over input device 130. This may help increase the calibrationspeed or include pre-calibration steps as system 400 may estimate howhand 610 will interface with housing 510 based on how a hovering orapproaching hand may move towards and engage input device 130, as wouldbe understood by one of ordinary skill in the art with the benefit ofthis disclosure.

In some aspects, movement calibration can be performed by using one ormore hand features as a reference to determine corresponding movementcoordinates (e.g., Cartesian x, y, z coordinates, polar coordinates,etc.). For example, a line corresponding to the detected location of auser's middle finger (e.g., a determined line along the length of themiddle finger) may be used to calibrate a forward/backward (e.g.,y-axis) movement of input device 130. In some instances, otherreferences can be used to calibrate movement, such as a determined linecorresponding to a detected location of a different finger, acombination of fingers and/or hand features, an averaged or compositeangle with respect to one or more fingers or hand features (e.g.,detected palm), etc. Once a reference is defined, movement in otherdirections can be calibrated based on the that reference, as would beunderstood by one of ordinary skill in the art.

In some implementations, a correction factor or skew can be incorporatedinto a calibration. For instance, some users may tend to naturally moveinput device 130 along an underlying surface based on an alignment thatis +/−1 to 10 degrees off of the line defined by their middle finger. Insuch cases, a calibrated movement can be skewed manually (e.g., viasoftware configured to control the operation of input device 130) orautomatically to accommodate different users. Skew may be determinedautomatically by any suitable methods. For example, calibration softwaremay ask a user to move input device 130 in a number of directions todetermine how to adjust movement calibration. Multiple profiles may beused for multiple users such that a first user, which may be detectedbased on detected properties of the hand including finger/palmdimensions, can have a first calibration setting, and a second user canhave a second calibration setting. In some cases, machine learning canbe employed to determine skew in movement over time and adjust a user'sprofile over time. One of ordinary skill in the art would understand themany variations, modifications, and alternative embodiments thereof.

Referring back to FIG. 6A, hand 610 moves input device 130 from positionA to position B and maintains its orientation (e.g., finger(s), palm,etc., do not move) with respect to housing 510. In response to themovement of input device 130, system 400 may maintain the detectedorientation 620(a) and calibrated movement settings as the relationshipof the position of hand 910 on input device 130 remains the same.

In FIG. 6B, hand 610 releases input device 130 at position B and movesto position C while input device 130 stays in place. In someembodiments, input device 130 may maintain the most recent movementcalibration settings when a user releases (e.g., stops touching) inputdevice 130 until a new hand contact/detection and correspondingorientation is detected. Alternatively, the movement calibration settingmay return to a default setting after release (e.g., a hand is no longerdetected) or after a threshold time thereafter (e.g., 5 minutes). One ofordinary skill in the art would understand the many variations,modifications, and alternative embodiments thereof.

In FIG. 6C, hand 610 moves from position C to position D and graspsinput device 130. System 400 then detects an orientation 620(b) ofuser's hand 610 with respect to housing 510 of input device 130 based onthe detected features of hand 610, as described above, and calibrates amovement detection for input device 130 accordingly. Note that previousorientation 620(a) switches to 620(b) when the new hand orientation isdetected.

FIG. 7 shows aspects of a movement calibration process for input device130 using optical detection, according to certain embodiments. Opticaldetection can be used to detect the presence and orientation of a user'shand on an input device using one or more IR LED emitters and IRdetectors, as further described above with respect to FIG. 5A. Referringto FIG. 7, IR LED emitter 550 emits IR light in an omnidirectionalemission pattern that passes up through an IR transparent region ofhousing 510. IR light 690 may be reflected off of hand 710 and backthrough the IR transparent surface. One or more of IR detectors560(1)-560(6) can detect the reflected IR light and operational logic420 (or other suitable system 400 resource) may deduce the orientationof the user's hand on housing 510 based on the reflected light, asfurther discussed above. In some embodiments, optical detection can beused in conjunction with touch detection (e.g., see FIG. 6A-C) forimproved accuracy.

FIG. 8 shows aspects of a depressible housing 510, according to certainembodiments. Housing 510 may include top portion 512 and bottom portion530. In some implementations, a switch (e.g., mechanical switch, forcesensor, relay, etc.) may be disposed in housing 510 such that a buttonpress signal is generated (e.g., in conjunction with input detectionblock 450) when top portion 512 is depressed. Referring to FIG. 8, inputdevice 130 includes gap 820 between top portion 512 and bottom portion530. When the user applies a force on top portion 512, gap 820 collapsesas top portion 512 moves towards bottom portion 530 and triggers abutton press signal. Any suitable function can be associated with thebutton press signal including left/right mouse click functions, changesto the operation of input device 130 (e.g., switching to another hostcomputer, changing a DPI setting, etc.), or the like. One of ordinaryskill in the art would understand the many variations, modifications,and alternative embodiments thereof.

The switch may be a mechanical switch, which can typically include aphysical movement of top portion 512 and bottom portion 530 with respectto each other (e.g., thereby closing gap 720). In some embodiments, aforce sensor can be employed (e.g., on a bottom surface of input device130) such that a sufficient force on top portion 512 triggers a buttonpress (e.g., 10-30 gram-force), despite no actual physical movementbetween top portion 512 and bottom portion 530. In some cases, hapticsensors configured for force detection can be used in a similar manner.Any suitable method of detecting a depression force on input device 130in the manner described above may be employed.

FIG. 9 is a simplified flow chart showing aspects of a method 900 formovement calibration for an input device, according to certainembodiments. Method 900 can be performed by processing logic that maycomprise hardware (circuitry, dedicated logic, etc.), software operatingon appropriate hardware (such as a general purpose computing system or adedicated machine), firmware (embedded software), or any combinationthereof. In certain embodiments, method 900 can be performed byprocessor 410 of system 400, by resources in operational logic block440, or a combination thereof, as shown and described above with respectto FIG. 4.

At step 910, method 900 can include receiving touch data from touchsensor 520 disposed on housing 510 of input device 130. The touch datamay corresponding to a detected presence of a hand on or near thesurface of housing 510. In some embodiments, touch data may be receivedfrom one or more touch sensors disposed on top portion 512 (e.g., todetect portions of a user's fingers, palm, or other features of thehand) and/or bottom portion 530 (e.g., to detect finger tips, etc.).Generally, the more surface area of housing 510 covered by touchsensitive sensors, the more hand features may be detected, which canimprove image detection accuracy. Touch sensors can be capacitivesensors, resistive sensors, or the like. In some implementations, heatsensing devices may be used to detect where portions of a hand arecontacting housing 510. Alternatively or additionally, heat sensingelements may be disposed on housing 510 in a similar manner as touchsensors 520, 522, or in any suitable location. In some embodiments,force sensors can be employed over areas on input device 130 to detecthow a user's hand is distributed over housing 510. The examples providedherein are not intended to be all-inclusive and other types of sensingdevices/systems may be employed to work in conjunction with or in lieuof the embodiments described and depicted herein, as would be understoodby one of ordinary skill in the art with the benefit of this disclosure.

At step 920, method 900 can include determining an orientation of thehand with respect to housing 510 based on the touch data. As indicatedabove, patterns of detected areas indicating a touch by a user's handcan be analyzed (e.g., by operational logic block 440) to determine alocation of individual fingers, a palm, portions of the oblique arches,longitudinal arches of the fingers, transverse carpal arch, transversemetacarpal arch, or other features of the hand. By positivelyidentifying certain features (e.g., a middle finger), system 400 (orsubsystems thereof) can determine how the hand is orientated relative tounderlying housing 510.

At step 930, method 900 can include calibrating the determined movementof the input device based on the determined orientation of the hand withrespect to the housing. In some embodiments, determining the orientationof the hand with respect to the housing can further include determiningthe location of a middle finger and/or a palm of the hand (or other handfeature), and using the determined hand feature as a reference point tobe used to later calibrate the determine movement of the input device.As indicated above, any detected feature or set of features of the handcan be used to determine the orientation of the hand.

At step 940, method 900 can include receiving movement data from one ormore movement sensors disposed in or on the housing of the input device.Movement data may corresponding to a detected movement of input device130. In some embodiments, the movement sensor can be an optical sensorconfigured to detect a 2D movement of the input device relative to anunderlying surface, one or more sensors (e.g., accelerometer, gyroscope)configured to detect 3D movement or position in 3D space (or 2D movementalong a surface) of the input device, or a combination thereof.

At step 950, method 900 can include determining a movement of the inputdevice based on the movement data. This can be performed in whole or inpart by movement tracking block 430, operational logic 420, processor410, or any combination of resources from system 400. The determinedmovement can be a calibrated measurement based on the determinedorientation of the hand (or feature thereof) with respect to thehousing. Although the embodiments described herein generally refer tothe housing as the point of reference, it would be understood by one ofordinary skill in the art that other reference points can be used. Forexample, a hand feature can be compared to a location of a particularsensor, input device feature (e.g., a palm region or other sub-portionof the housing), etc.

Alternatively or additionally, step 915 may be included in method 900 toincorporate optical detection of a hand on input device 130. At step915, method 900 can include receiving IR data from one or more IRdetectors 560 (1-6) disposed in housing 510. The one or more IRdetectors may be configured to receive reflected IR light emitted by IRemitter(s) 550 (e.g., disposed in housing 510) and reflected off of ahand configured on or near the top surface of housing 510. In certainembodiments, method 900 can further include detecting a position of thehand on the surface of the housing based on the detected IR data (step918). In instances where optical detection is used, determining theorientation of the hand with respect to the housing (step 920) isfurther based on the detected position of the hand based on the IR data.

It should be appreciated that the specific steps illustrated in FIG. 9provide a particular method 900 for establishing a wireless connectionwith a mobile input device, according to certain embodiments. Othersequences of steps may also be performed according to alternativeembodiments. For example, alternative embodiments may perform the stepsoutlined above in a different order. Moreover, the individual stepsillustrated in FIG. 9 may include multiple sub-steps that may beperformed in various sequences as appropriate to the individual step.For example, some embodiments may only employ touch detection, opticaldetection, heat detection, etc., while others may employ varyingcombinations thereof. Furthermore, additional steps may be added orremoved depending on the particular applications. This concept isrepresented in FIG. 9 by the inclusion of dashed lines around certainoptional method steps. Any combination of changes can be used and one ofordinary skill in the art with the benefit of this disclosure wouldunderstand the many variations, modifications, and alternativeembodiments thereof.

Tilt and Rotation Detection

In some embodiments, input device 130 can perform tilt and rotatefunctions in addition to x-y movements along a surface or in-airmovement detection. Some aspects of tilt and rotate functions aredescribed below.

FIG. 10A shows a tilt function on an input device, according to certainembodiments. Input device 130 is shown resting on an underlying surface.Display 1010 depicts a chart 1015 displaying data. Input device 130 istilting forward causing chart 1015 to pan downward by an amountproportional to the detected tilt. In some embodiments, a tilt conditioncan be detected in response to input device 130 tilting beyond athreshold angle relative to an underlying surface (e.g., a binarycontrol). For instance, a tilt condition may be detected when inputdevice 130 is tilted 20 degrees or more (or any suitable angle) by oneor more sensors, for example packaged in an IMU, such as accelerometersand/or gyroscopes). In other embodiments, a tilt condition can be ananalog control such that increasing or decreasing amounts of tilt maymodify one or more parameters on a display in an increasing ordecreasing manner.

In some cases, input device 130 can include movement sensor(s) disposedin the housing and controlled by the processor, where the one or moresensors are configured to detect a 3D movement of the input device. Atilt condition may be detected based on movement data from the movementsensor where the tilt condition corresponds to input device 130 tiltingbeyond a threshold angle relative to a horizontal plane.

Tilt detection may be detected when input device 130 is operating on asurface or in an in-air mode of operation. In some embodiments, tiltdetection may only be implemented while input device 130 is operating onan underlying surface. For example, tilt detection may be employed whileoptical sensor 580 detects an underlying surface, one or more movementsensors detect that input device 130 is substantially stationary (e.g.,indicating that input device 130 is resting on a stable surface and notheld by a user). The tilt function can be configured to control anysuitable function including, but not limited to, panning images on adisplay, controlling a volume on a media player, scrolling a document,adding a new dimension of control (e.g., pitch, yaw, roll) in a game or3D environment, etc. FIG. 10B shows a second tilt function on an inputdevice, according to certain embodiments. Display 1040 depicts a chart1045 displaying a media player and corresponding controls. Input device130 is tilting to the right causing a selection of a “next track”function on the media player.

FIG. 10C shows a rotation function on an input device, according tocertain embodiments. Display 1080 depicts a media player and volumecontrol 1085. Input device 130 is rotating clockwise causing the volumeto increase, as if input device 130 were a knob on a media controllingdevice. As indicated above, input device 130 can include one or moresensors configured to detect a rotation of input device 130.

The use of the terms “a” and “an” and “the” and similar referents in thecontext of describing the disclosed embodiments (especially in thecontext of the following claims) are to be construed to cover both thesingular and the plural, unless otherwise indicated herein or clearlycontradicted by context. The terms “comprising,” “having,” “including,”and “containing” are to be construed as open-ended terms (i.e., meaning“including, but not limited to,”) unless otherwise noted. The term“connected” is to be construed as partly or wholly contained within,attached to, or joined together, even if there is something intervening.The phrase “based on” should be understood to be open-ended, and notlimiting in any way, and is intended to be interpreted or otherwise readas “based at least in part on,” where appropriate. Recitation of rangesof values herein are merely intended to serve as a shorthand method ofreferring individually to each separate value falling within the range,unless otherwise indicated herein, and each separate value isincorporated into the specification as if it were individually recitedherein.

Preferred embodiments of this disclosure are described herein, includingthe best mode known to the inventors for carrying out the disclosure.Variations of those preferred embodiments may become apparent to thoseof ordinary skill in the art upon reading the foregoing description. Theinventors expect skilled artisans to employ such variations asappropriate, and the inventors intend for the disclosure to be practicedotherwise than as specifically described herein. Accordingly, thisdisclosure includes all modifications and equivalents of the subjectmatter recited in the claims appended hereto as permitted by applicablelaw. Moreover, any combination of the above-described elements in allpossible variations thereof is encompassed by the disclosure unlessotherwise indicated herein or otherwise clearly contradicted by context.

What is claimed is:
 1. An input device comprising: a housing having atop surface; a touch sensor coupled to the top surface of the housing,the touch sensor configured to: detect a contact by at least a portionof a hand on the top surface of the housing; and generate touch datacorresponding to the detected contact by the at least a portion of ahand; and one or more processors disposed in the housing, the one ormore processors configured to: receive the touch data from the touchsensor; determine an orientation of the hand with respect to the housingbased on the touch data; and calibrate a movement of the input devicebased on the determined orientation of the hand with respect to thehousing.
 2. The input device of claim 1, further comprising: an imagesensor coupled to the housing and the one or more processors, the imagesensor configured to image a surface, wherein the one or more processorsare configured to determine, based on the image sensor imaging thesurface, two-dimensional (2D) movement of the input device with respectto the surface; and wherein the 2D movement is calibrated based on thedetermined orientation of the hand with respect to the housing.
 3. Theinput device of claim 1, further comprising: an inertial measurementunit (IMU) disposed to the housing and the one or more processors, theIMU configured to: detect a change in a property indicative of athree-dimensional (3D) movement of the input device; and generate 3Dmovement data corresponding to the detected change in the property,wherein the movement of the input device that is calibrated is based, atleast in part, on the 3D movement data.
 4. The input device of claim 1,wherein the one or more processors determine a location of at least onefinger of the hand on the housing based on the touch data, and whereinthe one or more processors calibrate the movement of the input devicebased on the location of the at least one finger with respect to thehousing.
 5. The input device of claim 1, wherein the one or moreprocessors determine a location of a palm of the hand on the housing andat least one finger of the hand on the housing based on the touch data,and wherein the one or more processors calibrate the movement of theinput device based on the location of the palm and the at least onefinger with respect to the housing.
 6. The input device of claim 1,wherein at least a portion of the top surface of the housing istransparent to IR light, and wherein the input device further comprises:one or more infra-red (IR) emitters controlled by the one or moreprocessors and disposed within the housing, the one or more IR emittersconfigured to emit IR light out through the IR transparent portion ofthe top surface of the housing; and one or more IR detectors coupled tothe one or more processors and disposed within the housing, the one ormore IR detectors configured to detect IR light emitted by IR emittersand reflected off of a hand on the surface of the housing, and whereinthe IR emitters are disposed in the housing, wherein the one or moreprocessors are configured to determine the orientation of the hand withrespect to the housing based on the detected IR light.
 7. The inputdevice of claim 1, further comprising: a haptic element coupled to thehousing and controlled by the one or more processors, and an inertialmeasurement unit (IMU) disposed in the housing and coupled to the one ormore processors, the IMU configured to: detect a rotation or a tiltingof the input device; and generate tilt data corresponding to thedetected tilting of the input device or generate rotation datacorresponding to the detected rotation of the input device, wherein theone or more processors are configured to cause the haptic element togenerate a stimulus in response to receiving the tilt data or therotation data, and wherein an intensity of the stimulus corresponds toan amount of detected tilting or rotation of the input device.
 8. Amethod comprising: receiving, by one or more processors, touch data froma touch sensor disposed on a housing of an input device, the touch datacorresponding to a detected presence of a hand on a surface of thehousing; determining, by the one or more processors, an orientation ofthe hand with respect to the housing based on the touch data;calibrating, by the one or more processors, a movement detection of theinput device based on the determined orientation of the hand withrespect to the housing; receiving, by the one or more processors,movement data from a movement sensor disposed in the housing of theinput device, the movement data corresponding to a detected movement ofthe input device; and determining, by the one or more processors, amovement of the input device based on the movement data, wherein thedetermined movement is adjusted as defined by the calibrated movementdetection.
 9. The method of claim 8 wherein the movement sensor is anoptical sensor configured to detect a 2D movement of the input devicerelative to an underlying surface.
 10. The method of claim 8 wherein themovement sensor is an IMU configured to detect 3D movement of the inputdevice.
 11. The method of claim 8 wherein determining the orientation ofthe hand with respect to the housing further includes determining alocation of a middle finger of the hand, and wherein calibrating themovement detection of the input device is further based on the locationof the middle finger with respect to the housing.
 12. The method ofclaim 8 wherein determining the orientation of the hand with respect tothe housing further includes determining a location of a palm of thehand, and wherein calibrating the determine movement of the input deviceis further based on the location of the palm of the hand with respect tothe housing.
 13. The method of claim 8 further comprising: receiving, bythe one or more processors, IR data from one or more IR detectorsdisposed in the housing and controlled by the one or more processors,wherein the one or more IR detectors are configured to detect IR lightemitted by IR emitters and reflected off of a hand on the surface of thehousing, and wherein the IR emitters are disposed in the housing; anddetecting, by the one or more processors, a location of the hand on thesurface of the housing based on the IR data, wherein determining theorientation of the hand with respect to the housing is further based ondetected position of the hand based on the IR data.
 14. The method ofclaim 8 wherein the movement sensor includes an IMU disposed in thehousing and controlled by the one or more processors, the IMU beingconfigured to detect a 3D movement of the input device, and wherein themethod further includes: detecting, by the one or more processors, atilt condition based on the movement data, the tilt conditioncorresponding to the input device tilting beyond a threshold anglerelative to a horizontal plane; causing a haptic device coupled to theinput device to generate a stimulus in response to the one or moreprocessors detecting the tilt condition; and modifying an intensity ofthe stimulus based on an amount of detected tilting of the input device.15. A system comprising: one or more processors; and one or morenon-transitory computer-readable storage mediums containing instructionsto cause the one or more processors to perform operations including:receiving touch data from a touch sensor disposed on a housing of aninput device, the touch data corresponding to a detected presence of ahand on a surface of the housing; determining an orientation of the handwith respect to the housing based on the touch data; calibrating amovement detection of the input device based on the determinedorientation of the hand with respect to the housing; receiving movementdata from a movement sensor disposed in the housing of the input device,the movement data corresponding to a detected movement of the inputdevice; and determining a movement of the input device based on themovement data, wherein the determined movement is adjusted as defined bythe calibrated movement detection.
 16. The system of claim 15 whereinthe movement sensor is an optical sensor configured to detect a 2Dmovement of the input device relative to an underlying surface.
 17. Thesystem of claim 15 wherein the movement sensor is an IMU configured todetect 3D movement of the input device.
 18. The system of claim 15wherein determining the orientation of the hand with respect to thehousing further includes determining a location of a middle finger, andwherein calibrating the determine movement of the input device isfurther based on the location of the middle finger with respect to thehousing.
 19. The system of claim 15 wherein determining the orientationof the hand with respect to the housing further includes determining alocation of a palm of the hand, and wherein calibrating the determinemovement of the input device is further based on the location of thepalm of the hand with respect to the housing.
 20. The system of claim 15wherein the one or more non-transitory computer-readable storage mediumsfurther contain instructions to cause the one or more processors toperform operations including: receiving IR data from one or more IRdetectors disposed in the housing, wherein the one or more IR detectorsare configured to receive reflected IR light emitted by IR emitters andreflected off of a hand on the surface of the housing, and wherein theIR emitters are disposed in the housing; and detecting a position of thehand on the surface of the housing based on the IR data, wherein thedetermining the orientation of the hand with respect to the housing isfurther based on detected position of the hand based on the IR data.